i1 : R = ZZ[a..d]; |
i2 : F = (vars R) ++ ((vars R) ++ matrix{{a-1,b-3},{c,d}})
o2 = | a b c d 0 0 0 0 0 0 |
| 0 0 0 0 a b c d 0 0 |
| 0 0 0 0 0 0 0 0 a-1 b-3 |
| 0 0 0 0 0 0 0 0 c d |
4 10
o2 : Matrix R <--- R
|
i3 : F^[1]
o3 = | 0 0 0 0 a b c d 0 0 |
| 0 0 0 0 0 0 0 0 a-1 b-3 |
| 0 0 0 0 0 0 0 0 c d |
3 10
o3 : Matrix R <--- R
|
i4 : F_[1]^[1]
o4 = | a b c d 0 0 |
| 0 0 0 0 a-1 b-3 |
| 0 0 0 0 c d |
3 6
o4 : Matrix R <--- R
|
If the components have been given names (see directSum), use those instead.
i5 : G = (a=>R^2) ++ (b=>R^1)
3
o5 = R
o5 : R-module, free
|
i6 : N = map(G,R^2, (i,j) -> (i+37*j)_R)
o6 = | 0 37 |
| 1 38 |
| 2 39 |
3 2
o6 : Matrix R <--- R
|
i7 : N^[a]
o7 = | 0 37 |
| 1 38 |
2 2
o7 : Matrix R <--- R
|
i8 : N^[b]
o8 = | 2 39 |
1 2
o8 : Matrix R <--- R
|
i9 : N = directSum(x1 => matrix{{a,b-1}}, x2 => matrix{{a-3,b-17,c-35}}, x3 => vars R)
o9 = | a b-1 0 0 0 0 0 0 0 |
| 0 0 a-3 b-17 c-35 0 0 0 0 |
| 0 0 0 0 0 a b c d |
3 9
o9 : Matrix R <--- R
|
i10 : N^[x1,x3]
o10 = | a b-1 0 0 0 0 0 0 0 |
| 0 0 0 0 0 a b c d |
2 9
o10 : Matrix R <--- R
|
This works the same way for maps between chain complexes.